package nespresso.servlets;

import java.io.IOException;
import java.util.Enumeration;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.*;

import nespresso.beans.*;

import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;



public class AdmincapsuleServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
	public HttpSession session;
    /**
     * Default constructor. 
     */
    public AdmincapsuleServlet() {
       
    
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		/*
		 * si l'utilisateur tape l'adresse de la servlet directement dans la barre d'adresse, il est renvoy� 
		 * sur la page d'accueil !
		 */
		response.sendRedirect("nespresso.jsp");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	@SuppressWarnings({ "rawtypes", "unused" })
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		Log log = LogFactory.getLog(AdmincapsuleServlet.class);
		// on ouvre une session pour y mettre nos objets et pour protéger les pages
		session  = request.getSession(true);
		// on récupère les valeurs des champs du formulaire de la page de saisie des infos du compte
		request.setCharacterEncoding("UTF-8");
    	request.setAttribute("LoginMessage", "");
    	Enumeration params = request.getParameterNames();
    	String paramName 		= new String(); // Variable temporaire pour la récupération
    	String paramChamp 		= new String(); // Nom du champ à modifier
    	String paramValeur 		= new String(); // Valeur du champ
    	String paramidCapsule 	= new String(); // Valeur de l'id du User à modifier
    	String paramOperation 	= new String();
    	String paramId 			= new String();
    	String paramPrix 		= new String();
    	String paramNom 		= new String();
    	String paramImage		= new String();
    	String paramForce		= new String();
    	float fparamValeur = 0;
    	while(params.hasMoreElements()) {
    		paramName = (String)params.nextElement();
    		if(paramName.equals("oper")) 		paramOperation = request.getParameter(paramName);
    		if(paramName.equals("id")) 			paramId = request.getParameter(paramName);
    		if(paramName.equals("idCapsule")) 	paramidCapsule = request.getParameter(paramName);
    		if(paramName.equals("Prix")) 		paramPrix = request.getParameter(paramName);
    		if(paramName.equals("Nom")) 		paramNom = request.getParameter(paramName);
    		if(paramName.equals("Image")) 		paramImage = request.getParameter(paramName);
    		if(paramName.equals("Force")) 		paramForce = request.getParameter(paramName);
    	}
    	
		System.out.println("###### Infos Capsule récupérées ######################");
		System.out.println("Opération  => "+paramOperation);
		System.out.println("idCapsule  => "+paramidCapsule);
		System.out.println("paramNom   => "+paramNom);
		System.out.println("paramPrix  => "+paramPrix);
		System.out.println("paramForce => "+paramForce);
		System.out.println("paramImage => "+paramImage);
		System.out.println("######################################################");
		
		if(paramOperation.equals("edit")) {
			Base bc = new Base();
			if(!paramNom.equals("")) bc.UpdateCapsule(paramidCapsule, "NOM", paramNom);
			if(!paramPrix.equals("")) bc.UpdateCapsule(paramidCapsule, "PRIX", Float.valueOf(paramValeur));
			if(!paramForce.equals("")) bc.UpdateCapsule(paramidCapsule, "FORCE", Integer.parseInt(paramForce));
			if(!paramImage.equals("")) bc.UpdateCapsule(paramidCapsule, "IMAGE", paramImage);
			bc.Free();
		}
		if(paramOperation.equals("add")) {
			Base bc = new Base();
			Capsule cap = new Capsule("-NEW-", paramNom, Float.valueOf(paramPrix), Integer.valueOf(paramForce), paramImage);
			bc.InsertCapsule(cap);
			bc.Free();
		}
    }
}